package com.assessment.repository;

import com.assessment.model.entity.AssessmentResult;

import java.util.List;

/**
 * 评测结果仓储接口
 */
public interface AssessmentResultRepository {

    /**
     * 保存评测结果
     *
     * @param result 评测结果
     * @return 是否成功
     */
    boolean saveResult(AssessmentResult result);

    /**
     * 获取教师在周期的总体评测结果
     *
     * @param teacherId 教师ID
     * @param periodId  周期ID
     * @return 评测结果
     */
    AssessmentResult getTeacherOverallResult(Integer teacherId, Integer periodId);

    /**
     * 获取教师在周期的分类评测结果
     *
     * @param teacherId 教师ID
     * @param periodId  周期ID
     * @return 评测结果列表
     */
    List<AssessmentResult> getTeacherCategoryResults(Integer teacherId, Integer periodId);

    /**
     * 获取部门在周期的评测结果
     *
     * @param departmentId 部门ID
     * @param periodId     周期ID
     * @return 评测结果列表
     */
    List<AssessmentResult> getDepartmentResults(Integer departmentId, Integer periodId);

    /**
     * 获取所有教师在周期的评测结果
     *
     * @param periodId 周期ID
     * @return 评测结果列表
     */
    List<AssessmentResult> getAllResults(Integer periodId);
}
